package com.huahua.api.entity.vo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 正则表达式测试结果
 *
 * @author Huahua-Ai
 * @date 2025-01-13 22:38:00
 * @description 返回正则表达式的测试结果，包括匹配位置和执行时间
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RegexTestResultVO {

    /**
     * 测试的正则表达式
     */
    private String regex;

    /**
     * 是否为有效的正则表达式
     */
    private Boolean isValid;

    /**
     * 错误信息（如果正则无效）
     */
    private String errorMessage;

    /**
     * 匹配结果列表
     */
    private List<MatchResult> matches;

    /**
     * 匹配的总数
     */
    private Integer matchCount;

    /**
     * 执行时间（毫秒）
     */
    private Long executionTime;

    /**
     * 测试文本的长度
     */
    private Integer textLength;

    /**
     * 是否执行超时
     */
    private Boolean timeout;

    /**
     * 匹配结果详情
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class MatchResult {
        /**
         * 匹配的文本
         */
        private String matchedText;

        /**
         * 匹配开始位置
         */
        private Integer startIndex;

        /**
         * 匹配结束位置
         */
        private Integer endIndex;

        /**
         * 匹配所在行号（从1开始）
         */
        private Integer lineNumber;
    }
}
